// 存放全局共享状态,这里的状态变化了.组件中使用的地方就跟着主动变化
const state = {
  TextDecoderStream: "我是共享的状态",
  carList: [{
    id: 15,
    name: "小米su7",
    price: 230000,
    count: 9,
  }], // 购物车列表
};
// 相当于组件的计算属性.可以在这里对共享的状态进行提前处理再返回
const getters = {
  newCarList(state) {
    return state.carList.filter((item) => item.count > 10);
  },
};
// 以同步的方式修改state状态.不能有异步.第一个参数是state,第二个参数是传递的值
// 组件中可以通过this.$store.commit触发这里的方法/mapMutations
const mutations = {
  ADDTOCAR(state, payload) {
    // console.log(state, payload);
    const oldProduct = state.carList.find((item) => item.id === payload.id);
    console.log("是不是原来存在",oldProduct)
    if(oldProduct){
      oldProduct.count += 1;
      return;
    }else{
      state.carList.push(payload);
    }
    // sessionStorage.setItem("carList", JSON.stringify(state.carList));
  },
};
// 可以通过commit 触发mutations里面的方法.近而修改state的值
// 组件中可以通过this.$store.dispatch触发这里的方法/mapActions
const actions = {
  addToCart({ commit }, params) {
    commit("ADDTOCAR", params);
  },
};


export default {
  namespaced: true, //开启这个模块的命名空间
  state,
  mutations,
  actions,
  getters,
};
